package lend

import (
	"fmt"
	"github.com/gofiber/fiber/v2"
	"sg-backend/global"
	"sg-backend/model/paylog"
	"time"
)

type _updateType struct {
	Id     uint       `json:"id"`
	Money  float64    `json:"money"`
	Remark string     `json:"remark"`
	Time   *time.Time `json:"time"`
	ToWho  string     `json:"toWho"`
}

// UpdateLendLog 修改借出流水
func UpdateLendLog(ctx *fiber.Ctx) error {

	// 获取数据
	var dataDto _updateType
	if err := ctx.BodyParser(&dataDto); err != nil {
		return ctx.JSON(fiber.Map{
			"status":  "error",
			"message": fmt.Sprintf("数据解释出错！%s", err),
		})
	}

	// 保存到数据库
	updateObj := paylog.LendLog{Id: dataDto.Id}
	global.DB.First(&updateObj)
	updateObj.OweMoney = dataDto.Money
	updateObj.ToWho = dataDto.ToWho
	updateObj.OweTime = dataDto.Time
	updateObj.Remark = dataDto.Remark
	if dataDto.Money == updateObj.PaybackMoney {
		updateObj.Done = true
	} else {
		updateObj.Done = false
	}

	// 保存到数据库
	r := global.DB.Save(&updateObj)
	if r.Error != nil {
		return ctx.JSON(fiber.Map{
			"status":  "error",
			"message": fmt.Sprintf("更新失败！错误：%v", r.Error),
		})
	}

	return ctx.JSON(fiber.Map{
		"status":  "done",
		"message": "更新成功！",
	})
}
